package com.taijihuabao.modules.model.user.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.taijihuabao.common.commonutils.LongToStringSerializer;
import com.taijihuabao.modules.entity.*;
import com.taijihuabao.modules.model.menu.vo.MenuInfoVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @author 用户模型
 */
@Data
@ApiModel("用户模型")
public class UserInfoVO{

    /**
     * 用户主键
     */
    @ApiModelProperty(value = "用户主键")
    @JsonSerialize(using = LongToStringSerializer.class)
    private Long id;

    /**
     * 用户账号
     */
    @ApiModelProperty(value = "用户账号")
    private String username;

    /**
     * 用户密码
     */
    @ApiModelProperty(value = "用户密码")
    private String password;

    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称")
    private String name;

    /**
     * 用户性别
     */
    @ApiModelProperty(value = "用户性别")
    private String sex;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    @JsonSerialize(using = LongToStringSerializer.class)
    private Long phoneNumber;

    /**
     * 用户邮箱
     */
    @ApiModelProperty(value = "用户邮箱")
    private String userEmail;

    /**
     * 用户角色
     */
    @ApiModelProperty(value = "用户角色集合")
    private List<RoleEntity> roles;

    /**
     * 用户拥有的权限
     */
    @ApiModelProperty(value = "用户权限集合")
    private List<PermissionEntity> permissions;

    /**
     * 用户菜单集合
     */
    @ApiModelProperty(value = "用户菜单集合")
    private List<MenuInfoVO> menus;

    /**
     * 所在部门
     */
    @ApiModelProperty(value = "所在部门")
    private String deptName;

    /**
     * 所在部门角色
     */
    @ApiModelProperty(value = "所在部门角色")
    private List<String> deptRoles;

    /**
     * 用户头像路径
     */
    @ApiModelProperty(value = "用户头像路径")
    private String profile;
}
